home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / more-interfaces.scm < prev    next >
Text File  |  1995-10-13  |  8KB  |  376 lines

  1. ; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.
  2.  
  3.  
  4. ; Interfaces for packages that can get loaded after the initial.image
  5. ; starts up.
  6.  
  7. ; Command processor
  8.  
  9. (define-interface command-processor-interface
  10.   (export $command-levels
  11.       $write-length $write-depth
  12.       abort-to-command-level
  13.       add-sentinel!
  14.       command-input
  15.       command-level
  16.       command-level-condition
  17.       command-level-interrupts
  18.       command-level?
  19.       command-loop
  20.       command-continuation
  21.       command-output
  22.       focus-object
  23.       error-form ;foo
  24.       execute-command
  25.       evaluate            ; ???
  26.       evaluate-and-select
  27.       exit-command-processor
  28.       gobble-line
  29.       greet-user
  30.       make-user-context
  31.       environment-for-commands
  32.       read-command            ;take
  33.       read-command-carefully    ;inspect
  34.       read-form
  35.       run-sentinels
  36.       ;; set-command-level-env!
  37.       set-focus-object!
  38.       set-focus-values!
  39.       showing-focus-object        ;inspect
  40.       with-user-context
  41.       with-new-session
  42.       start-command-processor    ;build
  43.       throw-to-command-level
  44.       top-command-level
  45.       user-context
  46.       user-context-accessor
  47.       user-context-modifier
  48.       value->expression        ;foo
  49.       write-carefully
  50.       write-line
  51.       y-or-n?
  52.       break-on-warnings?
  53.       set-break-on-warnings?!
  54.       batch-mode?
  55.       set-batch-mode?!
  56.       help
  57.       define-command-syntax
  58.           define-user-command-syntax
  59.       user-command-environment
  60.       ;; set-command-structure!        ;startup
  61.       ;; command-structure             ;pacman
  62.           set-user-command-environment! ;pacman
  63.           read-command-error            ;inspect
  64.       &environment-id-string
  65.       &evaluate))
  66.  
  67. (define-interface basic-commands-interface
  68.   (export exit
  69.           go
  70.       load
  71.           help
  72.           run
  73.       ?))
  74.    
  75. (define-interface build-commands-interface
  76.   (export dump
  77.           build))
  78.        
  79. (define-interface inspect-commands-interface
  80.   (export inspect
  81.       debug
  82.       where))
  83.        
  84. (define-interface disassemble-commands-interface
  85.   (export dis))
  86.    
  87. (define-interface package-commands-interface
  88.   (export in
  89.       new-package
  90.       load-package
  91.       reload-package
  92.       structure
  93.       open
  94.       for-syntax
  95.       exec
  96.       user
  97.       user-package-is
  98.       config
  99.       config-package-is
  100.       undefine))
  101.  
  102. (define-interface debug-commands-interface
  103.   (export translate
  104.       preview
  105.       proceed
  106.       push
  107.           reset
  108.       level
  109.       condition
  110.       batch
  111.       bench
  112.       break-on-warnings
  113.       form-preferred
  114.       levels
  115.       flush
  116.       keep
  117.           collect
  118.       trace
  119.       untrace
  120.       time
  121.           from-file
  122.       forget
  123.       bound?
  124.       expand))
  125.  
  126. (define-interface usual-commands-interface
  127.   (compound-interface
  128.    basic-commands-interface
  129.    build-commands-interface
  130.    package-commands-interface
  131.    debug-commands-interface
  132.    inspect-commands-interface
  133.    disassemble-commands-interface
  134.    ))
  135.  
  136. (define-interface package-commands-internal-interface
  137.   (export config-package
  138.       new-command-processor
  139.       get-structure
  140.       get-package
  141.       user-environment
  142.       get-reflective-tower
  143.       set-package-evaluator!))
  144.  
  145. (define-interface debuginfo-interface
  146.   (export read-debug-info
  147.       write-debug-info))
  148.  
  149. (define-interface disclosers-interface
  150.   (export make-print-name
  151.       template-file-name
  152.       value->expression
  153.       error-form
  154.       location-info
  155.       location-name))
  156.  
  157. (define-interface package-mutation-interface
  158.   (export package-system-sentinel    ;env/command.scm
  159.       package-open!            ;env/debug.scm
  160.       package-undefine!
  161.       ))
  162.  
  163. (define-interface packages-cruft-interface
  164.   (export 
  165.       assume-denotation
  166.       ;; new-location-uid    ;?
  167.       interface-ref
  168.       structure-interface
  169.       verify-package        ;for debugging the package system
  170.       ))
  171.  
  172.  
  173. ; --------------------
  174. ; Linker
  175.  
  176. (define-interface linker-interface
  177.   (export link-simple-system
  178.       link-reified-system
  179.       link-semireified-system
  180.       (struct-list :syntax)
  181.       compile-structures))
  182.  
  183. (define-interface expander-interface
  184.   (export expand-form
  185.       expand-stuff
  186.       expand
  187.       lexical-reference-count
  188.       lexical-operator-count
  189.       lexical-assignment-count))
  190.  
  191.  
  192. ; --------------------
  193. ; Extended numbers: bignums, ratnums, etc.
  194.  
  195. (define-interface extended-numbers-interface
  196.   (export (define-extended-number-type :syntax)
  197.       (define-opcode-extension :syntax)
  198.       :exact :inexact
  199.       string-position
  200.       &+
  201.       &-
  202.       &*
  203.       &/
  204.       &=
  205.       &<
  206.       "ient
  207.       &remainder
  208.       &integer?
  209.       &rational?
  210.       &real?
  211.       &complex?
  212.       &number?
  213.       &exact?
  214.       &exact->inexact
  215.       &inexact->exact
  216.       &real-part
  217.       &imag-part
  218.       &floor
  219.       &numerator
  220.       &denominator
  221.       &exp &log
  222.       &sin &cos &tan &asin &acos &atan
  223.       &sqrt
  224.       &make-rectangular
  225.       &number->string
  226.       &really-string->number))
  227.  
  228. (define-interface bignums-interface  ;Things used by bigbit
  229.   (export integer->bignum bignum-magnitude bignum-sign
  230.       zero-magnitude?
  231.       integer->magnitude
  232.       adjoin-digit
  233.       low-digit high-digits
  234.       make-integer
  235.       zero-magnitude
  236.       radix log-radix
  237.       integer-negate integer- integer=))
  238.  
  239. ; --------------------
  240. ; Big Scheme
  241.  
  242. (define-interface defrecord-interface  ;RK's
  243.   (export (define-record-type :syntax)
  244.       define-record-discloser))
  245.  
  246. (define-interface externals-interface
  247.   (export get-external
  248.       lookup-all-externals
  249.       external-call
  250.       null-terminate))
  251.  
  252. (define-interface queues-interface
  253.   (export make-queue enqueue dequeue queue-empty?
  254.       queue? queue->list queue-length delete-from-queue!))
  255.  
  256.  
  257. (define-interface threads-interface
  258.   (export spawn
  259.       make-lock with-lock obtain-lock release-lock
  260.       make-condvar condvar-ref condvar-set!
  261.       relinquish-timeslice current-thread
  262.       kill-thread start-thread stop-thread ;for debugging
  263.       thread?
  264.       interrupt-thread        ;documented for mobot system...
  265.       active-threads
  266.       sleep time one-second
  267.  
  268.       thread-uid thread-continuation ;used by serve.scm
  269.       thread-read-char        ;used by comm.scm
  270.       thread-peek-char
  271.       read-char-with-timeout
  272.  
  273.       kill-condvar
  274.       terminate-current-thread
  275.       with-multitasking
  276.  
  277.       with-interrupts-inhibited
  278.       with-interrupts-allowed))
  279.  
  280.  
  281. (define-interface dump/restore-interface
  282.   (export dump
  283.       restore
  284.       note-location!
  285.       $dump-index
  286.       $restore-index))
  287.  
  288. (define-interface extended-ports-interface
  289.   (export make-tracking-input-port make-tracking-output-port
  290.       make-string-input-port
  291.       call-with-string-output-port
  292.       write-one-line
  293.       current-row current-column fresh-line
  294.       ;; added exports for scsh -dalbertz
  295.       make-input-port-methods
  296.       extensible-input-port?
  297.       extensible-input-port-local-data
  298.       make-output-port-methods
  299.       extensible-output-port?
  300.       extensible-output-port-local-data
  301.       make-extensible-input-port
  302.       make-extensible-output-port
  303.       eof-object
  304.       make-string-output-port
  305.       string-output-port-output
  306.       ;; end of additions       -dalbertz
  307.       input-port? output-port?))
  308.  
  309. (define-interface arrays-interface
  310.   (export make-array        ; <initial-value> <bound1> ...
  311.       array-shape        ; <array>
  312.       array-ref        ; <array> <index1> ...
  313.       array-set!        ; <array> <value> <index1> ...
  314.       make-shared-array    ; <array> <linear-map> <bound1> ...
  315.       copy-array        ; <array>
  316.       array->vector        ; <array>
  317.       array))        ; <bounds> . <elements>
  318.  
  319. (define-interface search-trees-interface
  320.   (export make-search-tree
  321.           search-tree-ref
  322.           search-tree-set!
  323.           search-tree-modify!
  324.           search-tree-max
  325.           search-tree-min
  326.           walk-search-tree))
  327.  
  328. (define-interface big-scheme-interface
  329.   (compound-interface
  330.       (interface-of ascii)
  331.       (interface-of bitwise)
  332.       (interface-of tables)
  333.       (interface-of enumerated)
  334.       defrecord-interface
  335.       extended-ports-interface
  336.       queues-interface
  337.       (interface-of tables)
  338.       (export concatenate-symbol
  339.           error breakpoint
  340.           atom? null-list? neq? n=
  341.           identity no-op
  342.           memq? first any? any every? 
  343.           filter filter! filter-map partition-list partition-list!
  344.           remove-duplicates delq delq! delete
  345.           reverse!
  346.           (destructure :syntax)
  347.           (receive :syntax)
  348.           format
  349.           sort-list sort-list!
  350.           p pretty-print)))
  351.  
  352. ; --------------------
  353. ; Miscellaneous
  354.  
  355. ; Copied from interfaces.scm.
  356. (define-interface define-record-types-interface
  357.   (export (define-record-type :syntax)
  358.       define-record-discloser))
  359.  
  360. (define-interface sicp-interface
  361.   (export and or (sequence :syntax)
  362.       mapcar mapc 1+ -1+ t nil atom? print princ prin1 error
  363.       (cons-stream :syntax) head tail the-empty-stream empty-stream?
  364.       explode implode get put))
  365.  
  366. (define-interface generics-interface    ;Obsolescent
  367.   (export make-method-table
  368.       apply-generic
  369.       make-generic
  370.       disclose
  371.       disclose-methods
  372.       define-method
  373.       define-default-method
  374.       fail
  375.       make-family))
  376.